package com.alks.function.mapper.pcfactoryquery;

import com.alks.entity.data.entity.PcStitchDetail;
import com.alks.function.data.dto.chengKong.produce.PcLotStatusCount2Dto;
import com.alks.function.data.dto.chengKong.produce.PcLotStatusCountDto;
import com.alks.function.data.dto.pcfactoryquery.*;
import com.alks.function.data.dto.produce.PcStitchBarcodeDto;
import com.alks.function.data.request.factoryquery.StitchHeadRequest;
import com.alks.function.data.request.factoryquery.StitchStockRequest;
import com.alks.function.data.vo.biocontrol.deptwork.ReportStitchDailyVO2;
import com.alks.function.data.vo.pcfactoryWork.DailyExportVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author ms
 * @since 2023-08-17
 */
public interface FT_QR_PcStitchDetailMapper extends BaseMapper<PcStitchDetail> {

    /*主表订单数据*/
    List<PcStitchStockDto> queryStitchStockHead(@Param("request") StitchStockRequest request, @Param("companyId") String companyId);

    /*库存数量求和*/
    Long queryStockCount(StitchStockRequest request);

    /*明细表数量数据*/
    List<PcStitchDetail> queryStitchStockQty(String lotNo);

    /*明细表数据*/
    List<PcStitchDetailDto> queryStitchStockDetail(String lotNo);

    /*部门入库明细*/
    List<PcStitchStockDetailDto> queryStitchInDetail(String lotNo);


//    /*部门发料明细*/
//    List<PcStitchStockDetailDto> queryStitchOutDetail(String lotNo);

    /*缴库发货数量来源明细*/
    List<StitchDeptHeadDto> queryStitchDeptHead(StitchHeadRequest lotNo);


    /*缴库发货部门明细*/
    List<StitchDeptDetailDto> queryStitchDeptDetail(@Param("deptName") String deptName,@Param("slipType") String slipType);

    /*查询收集表是否已经存在：今天，缴库单位，指令相同的有没有*/
    List<PcStitchDetail> queryStitchDetail2(@Param("request") PcStitchBarcodeDto stitchDto);

    /*更新*/
    int updateQty(PcStitchDetail detail);

    /**
     * 日报表导出查询
     * @param request 查询条件
     * @param companyId 公司id
     * @return 日报表导出数据
     */
    List<DailyExportVo> dailyExportDateQuery(@Param("request") StitchHeadRequest request, @Param("companyId") String companyId);

    /**
     * 鞋面账目报表基础数据查询
     *
     * @return 鞋面账目报表所需数据
     */
    List<ReportStitchDailyVO2> stitchStkExportQuery(@Param("request") StitchHeadRequest request, @Param("companyId") String companyId);


    /*查询数量有变化的指令:鞋面表和库存表*/
    List<PcLotStatusCountDto> getMismatchedLotNoList();

    /*标签头表有变化的数据（指令+号码类型）*/
    List<PcLotStatusCount2Dto> getMismatchedLotNoList2(String lotNo);

    /*统计 PC_STITCH_DETAIL_ATTACH 数据到 pcStitchStatus*/
    List<PcLotStatusCount2Dto> getMismatchedLotNoList3(String lotNo);

    /*先查询指令+公司+出入库类型+入库时间 种 pcStitchDetail 和 StitchDetailAttach 的总数据有差异的更新数据*/
    List<PcStitchDetaiaAttachlDto> queryStitchAndAttach();

    /*批量根据slipNo 查询pcStitchDetail 数据*/
    List<PcStitchDetail> queryStitchDetailBySlipNos(List<String> list);

    /*查询收发明细*/
    List<PcStitchStockDetailDto> getStitchDetail(StitchStockRequest request);

    /*统计收发料总数量*/
    PcStitchStockDetailDto getStitchDetailCount(StitchStockRequest request);

    /*查询收发号码明细*/
    List<PcStitchDetailDto> getStitchSizeDetail(StitchStockRequest request);

    /*定时更新 PC_STITCH_COLLECT_DEPT_HEAD 里面的人数*/
    void updateStitchDeptPeoplo();
}
